Qt之QML学习(二) 您所在的位置:网站首页 qml 界面 逻辑分离 Qt之QML学习(二)

Qt之QML学习(二)

2024-07-09 11:20| 来源: 网络整理| 查看: 265

前言

QML作为界面,在简单的交互中可能EMCA通过事件就可以解决简单的交互,但是往往复杂的计算或者用到后台一些服务的时候往往用C++去开发,这就需要两者互相传递数据,实际过程中,在QML与C++交互用的最多的就是QString和QjsonObject两种类型,下面总结一下方法并提供案列。

一、注册一个QML可用的类型

主要步骤:1、实现C++类; 2、注册QML类型; 3、在QML中导入类型; 4、在QML中创建由C++导出的类型的实例并使用。 这里核心是qmlRegisterType(当然有各种形式),注册好之后可用讲C++类似组件的形式,头文件import之后就可以应用C++类。

二:将对象设置为上下文属性

核心函数是setContexProperty(“在QML的名字”,new 类)。需要注意的是这边自己new的对象,QMLContex只是使用不会帮你删除,需要自己手动释放。注册完之后这相当于全局的函数,只要在QML中就能使用。

三、在C++中使用QML对象

QT最核心的一个基础特性,就是元对象系统,通过元对象系统,可以查询QObject的某个派生名,有哪些信号、槽、属性可调用的方法等信息,可以用**findChild()和findChildren()**由一个对象查找其子对象和属性。知道这个就行了因为实际不会这么用,太麻烦。还不如直接用上面的方法,以及一些信号与交互。

总结


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有